package com.zys.dao;

import java.util.Map;

import com.zys.pojo.Good;
import com.github.pagehelper.Page;

/**
 * 处理商品 Dao 层
 */
public interface GoodDao {
  /**
   * 根据查询条件查询商品列表
   *
   * @param condition 查询条件
   * @return Page
   */
  Page<Good> findByCondition(String condition);

  /**
   * 添加商品
   *
   * @param good 商品信息
   */
  void add(Good good);

  /**
   * 关联商品和分类
   *
   * @param map { goodId: 商品 id, cateId: 分类 id}
   */
  void setRelation4GoodsAndCategory(Map<String, Integer> map);

  /**
   * 根据商品 id 移除商品和分类的关联
   *
   * @param id 商品 id
   */
  void rmRelation4GoodsAndCategory(Integer id);

  /**
   * 删除商品
   *
   * @param id 商品 id
   */
  void delete(Integer id);

  /**
   * 根据 id 查询商品信息
   *
   * @param id 商品 id
   * @return 商品信息
   */
  Good findGoodById(Integer id);

  /**
   * 修改商品信息
   *
   * @param good 修改后的商品信息
   */
  void edit(Good good);

  /**
   * 查询指定日期前的商品添加数量
   *
   * @param Time 指定日期
   * @return 指定日期前的商品添加数量
   */
  Integer findGoodCountBeforeDate(Long Time);

  /**
   * 查询指定时间内的商品添加数量
   *
   * @param map { first: "起始时间值", last: "结束时间值"}
   * @return 指定时间内的商品添加数量
   */
  Integer findUserCountByAddTime(Map<String, Long> map);

  /**
   * 查询商品总数
   * @return 商品总数
   */
  Integer findGoodTotalCount();
}
